* xterm.c (x_term_init): If the X connection is already in file
authorJim Blandy <jimb@redhat.com>
Sat, 20 Mar 1993 21:07:59 +0000 (21:07 +0000)
committerJim Blandy <jimb@redhat.com>
Sat, 20 Mar 1993 21:07:59 +0000 (21:07 +0000)
descriptor zero, don't dup it and close the old one.

src/xterm.c

index 35bacb748cdbd595b31caad061b0a89afa4674d1..f766e129593072a6e352caf38db29c0b91c988d3 100644 (file)
@@ -4557,17 +4557,20 @@ x_term_init (display_name)
   x_watch_cut_buffer_cache ();
 #endif
 
-  dup2 (ConnectionNumber (x_current_display), 0);
+  if (ConnectionNumber (x_current_display) != 0)
+    {
+      dup2 (ConnectionNumber (x_current_display), 0);
 
 #ifndef SYSV_STREAMS
-  /* Streams somehow keeps track of which descriptor number
-     is being used to talk to X.  So it is not safe to substitute
-     descriptor 0.  But it is safe to make descriptor 0 a copy of it.  */
-  close (ConnectionNumber (x_current_display));
-  ConnectionNumber (x_current_display) = 0;    /* Looks a little strange?
+      /* Streams somehow keeps track of which descriptor number
+        is being used to talk to X.  So it is not safe to substitute
+        descriptor 0.  But it is safe to make descriptor 0 a copy of it.  */
+      close (ConnectionNumber (x_current_display));
+      ConnectionNumber (x_current_display) = 0;        /* Looks a little strange?
                                                 * check the def of the macro;
                                                 * it is a genuine lvalue */
 #endif /* SYSV_STREAMS */
+    }
 
 #endif /* ! defined (HAVE_X11) */